package ui;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.Rectangle;
import java.text.ParseException;

import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.text.MaskFormatter;

public class CadastroView1 extends JFrame {

	private JPanel painelCabecalho;
	private JPanel painelCentro;
	private JPanel painelRodape;
	private JLabel tituloPagina;
	private Font fontPagina;
	private JLabel tituloRodape;
	private Font fontRodape;
	private JLabel labelNome;
	private JTextField txtNome;
	private Font fontNome;
	private JLabel labelIdade;
	private JFormattedTextField txtIdade;
	private JLabel labelSexo;
	private Font fontSexo;
	private Font fontIdade;
	private JRadioButton radioSexoMasculino;
	private JRadioButton radioSexoFeminino;
	private ButtonGroup groupRadioSexo;
	private JLabel labelSalario;
	private JFormattedTextField txtSalario;
	private Font fontSalario;
	private JButton btnSalvar;
	private JLabel labelTelefone;
	private Font fontTelefone;
	private JFormattedTextField txtTelefone;
	private MaskFormatter mascaraTel;
	private MaskFormatter mascaraIdade;
	private MaskFormatter mascaraSalario;

	public void abrirCadastro() throws ParseException {

		this.setLayout(new BorderLayout());
		
		//Painel Cabecalho
		this.criarCabecalho();
		//Painel Centro
		this.criarCentro();
		//Painel Rodape
		this.criarRodape();

		
		
        
        this.add(painelCabecalho, BorderLayout.NORTH);
		this.add(painelCentro, BorderLayout.CENTER);
		this.add(painelRodape, BorderLayout.SOUTH);
		this.setSize(400, 350);
		this.setTitle("Cadastro Funcionário");
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setResizable(false);
		this.setLocationRelativeTo(null);
		this.setVisible(true);

	}
	private JPanel criarCabecalho(){
		
				painelCabecalho = new JPanel();
				tituloPagina = new JLabel();
				fontPagina = new Font("Times New Roman", Font.BOLD, 20);
				painelCabecalho.setBorder(BorderFactory.createLineBorder(Color.BLACK));
				painelCabecalho.setBackground(Color.GRAY);
				tituloPagina.setForeground(Color.BLACK);
				tituloPagina.setText("Requistos Do Cadastro");
				painelCabecalho.add(tituloPagina);
				tituloPagina.setFont(fontPagina);
				
				
			return painelCabecalho;
	}

	private JPanel criarCentro() throws ParseException{
		// painel centro
				painelCentro = new JPanel();
				painelCentro.setLayout(null);

				// label nome
				fontNome = new Font("Arial", Font.ITALIC, 15);
				labelNome = new JLabel();
				labelNome.setText("Nome: ");
				labelNome.setBounds(new Rectangle(20, 30, 95, 23));
				labelNome.setFont(fontNome);
				// txt nome
				txtNome = new JTextField();
				txtNome.setBounds(new Rectangle(95, 30, 95, 23));

				// label idade
				fontIdade = new Font("Arial", Font.ITALIC, 15);
				labelIdade = new JLabel();
				labelIdade.setText("Idade: ");
				labelIdade.setBounds(new Rectangle(20, 60, 95, 23));
				labelIdade.setFont(fontIdade);
				// txt idade
				mascaraIdade = new MaskFormatter("##");
				txtIdade = new JFormattedTextField(mascaraIdade);
				txtIdade.setBounds(new Rectangle(95, 60, 30, 23));

				// label salario
				fontSalario = new Font("Arial", Font.ITALIC, 15);
				labelSalario = new JLabel();
				labelSalario.setText("Salario: ");
				labelSalario.setBounds(new Rectangle(20, 120, 95, 23));
				labelSalario.setFont(fontSalario);
				// txt salario
				mascaraSalario = new MaskFormatter("R$ #.###,##");
				txtSalario = new JFormattedTextField(mascaraSalario);
				txtSalario.setBounds(new Rectangle(95, 120, 95, 23));

				// label sexo
				fontSexo = new Font("Arial", Font.ITALIC, 15);
				labelSexo = new JLabel();
				labelSexo.setText("Sexo: ");
				labelSexo.setBounds(new Rectangle(20, 90, 60, 23));
				labelSexo.setFont(fontSexo);

				// radio Sexo Masculino
				groupRadioSexo = new ButtonGroup();
				radioSexoMasculino = new JRadioButton();
				radioSexoMasculino.setText("M");
				radioSexoMasculino.setBounds(new Rectangle(95, 90, 40, 23));

				// radio sexo Feminino
				radioSexoFeminino = new JRadioButton();
				radioSexoFeminino.setText("F");
				radioSexoFeminino.setBounds(new Rectangle(135, 90, 40, 23));

				//label telefone
				fontTelefone = new Font("Arial", Font.ITALIC, 15);
				labelTelefone = new JLabel();
				labelTelefone.setText("Telefone: ");
				labelTelefone.setBounds(new Rectangle(20, 150, 95, 23));
				labelTelefone.setFont(fontTelefone);
				//txt Telefone
				mascaraTel = new MaskFormatter("(##) ####-####");
				txtTelefone = new JFormattedTextField(mascaraTel);
				txtTelefone.setBounds(95, 150, 120, 30);
				
				// botão salvar
				btnSalvar = new JButton(new ImageIcon("images/save.png"));
				btnSalvar.setText("Salvar");
				btnSalvar.setBounds(new Rectangle(260, 200, 90, 25));

				groupRadioSexo.add(radioSexoFeminino);
				groupRadioSexo.add(radioSexoMasculino);
				painelCentro.add(labelNome);
				painelCentro.add(txtNome);
				painelCentro.add(labelIdade);
				painelCentro.add(txtIdade);
				painelCentro.add(labelSalario);
				painelCentro.add(txtSalario);
				painelCentro.add(labelSexo);
				painelCentro.add(radioSexoFeminino);
				painelCentro.add(radioSexoMasculino);
				painelCentro.add(btnSalvar);
		        painelCentro.add(labelTelefone);
		        painelCentro.add(txtTelefone);
		        
		        return painelCentro;
	}

	private JPanel criarRodape(){
				painelRodape = new JPanel();
		        fontRodape = new Font("Times New Roman", Font.BOLD, 21);
		        tituloRodape = new JLabel();
		        tituloRodape.setText("Trainee 2014");
		        painelRodape.add(tituloRodape);
		        tituloRodape.setFont(fontRodape);
				painelRodape.setBorder(BorderFactory.createLineBorder(Color.BLACK));
				tituloRodape.setForeground(Color.BLACK);
				painelRodape.setBackground(Color.GRAY);
		        
		        
		        
				painelRodape.add(tituloRodape);
				return painelRodape;
	}

}
